package main

/*
* Content: flag包
* --------------------------------------------------
* Go语言flag包解析: https://blog.csdn.net/weixin_46272577/article/details/124511421
 */

import (
	"flag"
	"fmt"
)

func MyBagFlag() {

	// -flag：  只支持 bool 类型；
	// -flag=x：支持所有类型
	// -flag x：只支持非 bool 类型。

	// flag包
	fmt.Println("--------------------flag包--------------------")

	// 返回的 name, age, married, delay 等为对应类型的指针
	// 参数1: 参数名    参数2: 默认值    参数3: 参数解释
	var name *string = flag.String("name", "张三", "姓名")
	age := flag.Int("age", 18, "年龄")
	// 另一种方式:
	var married bool
	var delay int
	flag.BoolVar(&married, "married", false, "是否已婚")
	flag.IntVar(&delay, "d", 0, "时间间隔")

	// 设置好之后命令解析
	flag.Parse()

	// 返回的是指针，访问需使用*
	fmt.Println(*name, *age, married, delay)

}
